package com.kabigon.tiny.util;

import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.ClassPathResource;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;

import java.nio.charset.Charset;
import java.util.List;

/**
 * 从本地获取json数据的工具类
 * @author xu.biao
 * @version v1.0
 * @Package com.kabigon.tiny.util
 * @data 2022/5/28 22:38
 */
public class LocalJsonUtil {


    /**
     * 从指定路径获取json并转换为list
     *
     * @param path        路径
     * @param elementType 元素类型
     * @return {@link List}<{@link T}>
     */
    public static <T> List<T> getListFormJson(String path, Class<T> elementType) {
        ClassPathResource resource = new ClassPathResource(path);
        String jsonStr = IoUtil.read(resource.getStream(), Charset.forName("UTF-8"));
        JSONArray jsonArray = new JSONArray(jsonStr);
        return JSONUtil.toList(jsonArray, elementType);
    }
}
